﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleBuffer
{
    public interface IBuffer<T>
    {
        int ReaderIndex { get; }
        int WriterIndex { get; }
        int Capacity { get; }
        int Length { get; }
        int ReadableLength { get; }
        int WritableLength { get; }
        bool AutoIncrement { get; set; }
        int IncrementSize { get; set; }
        T[] Array { get; }
        T this[int index] { get; set; }
        T[] Read(int length);
        void Write(T[] value);
        T Get(int index);
        void Set(int index, T value);
        T[] Get(int index, int length);
        void Set(int index, T[] value);
    }
}
